package com.ruoyi.system.service;

import com.ruoyi.system.domain.LikedCountDTO;
import com.ruoyi.system.domain.OkrCommentMeta;
import com.ruoyi.system.domain.OkrThumbsUp;

import java.util.List;

/**
 * @author Bruce
 */
public interface IRedisService {
    /**
     * 点赞，置1
     * @param userId
     * @param commentId
     */
    void saveLiked2Redis(Long userId, Integer commentId);

    /**
     * 取消点赞，置0
     * @param userId
     * @param commentId
     */
    void unlikeFromRedis(Long userId, Integer commentId);

    /**
     * 从Redis中删除一条点赞数据
     * @param userId
     * @param commentId
     */
    void deleteLikedFromRedis(Long userId, Integer commentId);

    /**
     * 评论点赞数+1
     * @param commentId
     */
    void incrementLikedCount(Integer commentId);

    /**
     * 评论点赞数-1
     * @param commentId
     */
    void decrementLikedCount(Integer commentId);


    /**
     * 从redis中查找是否有点赞数据
     * @param userId
     * @param commentId
     * @return
     */
    OkrThumbsUp containsLikeFromRedis(Long userId, Integer commentId);

    /**
     * 获取所有点赞数据
     * @return
     */
    List<OkrThumbsUp> getLikedDataFromRedis();


    String getLikeCountByCommentId(Long commentId);

    /**
     * 获取Redis中存储的所有节点数量
     * @return
     */
    List<OkrCommentMeta> getLikedCountFromRedis();

}
